package com.cn.wanxi.service.impl;

import com.cn.wanxi.dao.NavDao;
import com.cn.wanxi.dao.impl.NavImpl;
import com.cn.wanxi.model.NavModel;
import com.cn.wanxi.service.INavService;
import redis.clients.jedis.Jedis;

import java.util.ArrayList;
import java.util.List;

public class NavServiceImpl implements INavService {
    @Override
    public List<NavModel> getNavList() {
        /**
         * 1.判断缓存里面是否有数据
         * 一：有，则取缓存数据
         * 二：没有  则查询数据库
         */

        NavDao navDao = new NavImpl();
        List<NavModel> list = new ArrayList<>();
        Jedis jedis = new Jedis();
        long length = jedis.llen("ids");
        if (length > 0) {
//            值来自于缓存
            List<String> ids = jedis.lrange("ids", 0, -1);
            List<String> hrefs = jedis.lrange("hrefs", 0, -1);
            List<String> titles = jedis.lrange("titles", 0, -1);
            for (int i = 0; i < length; i++) {
                NavModel navModel = new NavModel();
                navModel.setId(Integer.parseInt(ids.get(i)));
                navModel.setHref(hrefs.get(i));
                navModel.setTitle(titles.get(i));
                list.add(navModel);
            }
        } else {
//            值来自于数据库
            list = navDao.findAll();
            for (int i = 0; i < list.size(); i++) {
                jedis.rpush("ids", list.get(i).getId().toString());
                jedis.rpush("hrefs", list.get(i).getHref());
                jedis.rpush("titles", list.get(i).getTitle());
            }
        }
        return list;
    }

//    public int update(NavModel navModel) {
//        NavDao navDao = new NavImpl();
//        int result=navDao.update(navModel);
//        if(result==1){
//            Jedis jedis=new Jedis();
//            jedis.del("ids");
//        }
//        return result;
//    }
}
